diff -ur fbreader-0.7.4g/fbreader/common/formats/fb2/FB2BookReader.cpp fbreader-0.7.4k/fbreader/common/formats/fb2/FB2BookReader.cpp
--- fbreader-0.7.4g/fbreader/common/formats/fb2/FB2BookReader.cpp	2006-07-11 13:55:47.000000000 +0400
+++ fbreader-0.7.4k/fbreader/common/formats/fb2/FB2BookReader.cpp	2006-10-07 15:27:33.000000000 +0400
@@ -27,6 +27,8 @@
 #include "../../model/Paragraph.h"
 
 FB2BookReader::FB2BookReader(BookModel &model) : myModelReader(model) {
+	myInsideCoverpage = false;
+	myParagraphsBeforeBodyNumber = (size_t)-1;
 	myInsidePoem = false;
 	mySectionDepth = 0;
 	myBodyCounter = 0;
@@ -141,6 +143,12 @@
 			}
 			myModelReader.pushKind(ANNOTATION);
 			break;
+		case _COVERPAGE:
+			if (myBodyCounter == 0) {
+			  myInsideCoverpage = true;
+				myModelReader.setMainTextModel();
+			}
+			break;
 		case _SUB:
 			myModelReader.addControl(SUB, true);
 			break;
@@ -173,7 +181,13 @@
 		{
 			const char *ref = reference(xmlattributes);
 			if (ref != 0) {
-				myModelReader.addImageReference(ref);
+				if ((myCoverImageReference != ref) ||
+			      (myParagraphsBeforeBodyNumber != myModelReader.model().bookTextModel().paragraphsNumber())) {
+				  myModelReader.addImageReference(ref);
+				}
+				if (myInsideCoverpage) {
+				  myCoverImageReference = ref;
+				}
 			}
 			break;
 		}
@@ -194,6 +208,7 @@
 			break;
 		case _BODY:
 			++myBodyCounter;
+			myParagraphsBeforeBodyNumber = myModelReader.model().bookTextModel().paragraphsNumber();
 			if (myBodyCounter == 1) {
 				myModelReader.setMainTextModel();
 			}
@@ -250,6 +265,13 @@
 				myModelReader.unsetTextModel();
 			}
 			break;
+		case _COVERPAGE:
+			if (myBodyCounter == 0) {
+			  myInsideCoverpage = false;
+				myModelReader.insertEndOfSectionParagraph();
+				myModelReader.unsetTextModel();
+			}
+			break;
 		case _SUB:
 			myModelReader.addControl(SUB, false);
 			break;
diff -ur fbreader-0.7.4g/fbreader/common/formats/fb2/FB2BookReader.h fbreader-0.7.4k/fbreader/common/formats/fb2/FB2BookReader.h
--- fbreader-0.7.4g/fbreader/common/formats/fb2/FB2BookReader.h	2006-07-11 13:55:47.000000000 +0400
+++ fbreader-0.7.4k/fbreader/common/formats/fb2/FB2BookReader.h	2006-10-07 15:27:33.000000000 +0400
@@ -42,6 +42,9 @@
 private:
 	int mySectionDepth;
 	int myBodyCounter;
+	bool myInsideCoverpage;
+	size_t myParagraphsBeforeBodyNumber;
+	std::string myCoverImageReference;
 	bool myInsidePoem;
 	BookReader myModelReader;
 
diff -ur fbreader-0.7.4g/fbreader/common/formats/fb2/FB2Reader.cpp fbreader-0.7.4k/fbreader/common/formats/fb2/FB2Reader.cpp
--- fbreader-0.7.4g/fbreader/common/formats/fb2/FB2Reader.cpp	2006-07-11 13:55:47.000000000 +0400
+++ fbreader-0.7.4k/fbreader/common/formats/fb2/FB2Reader.cpp	2006-10-07 15:27:33.000000000 +0400
@@ -60,6 +60,8 @@
 	{"first-name", FB2Reader::_FIRST_NAME},
 	{"middle-name", FB2Reader::_MIDDLE_NAME},
 	{"last-name", FB2Reader::_LAST_NAME},
+	{"coverpage", FB2Reader::_COVERPAGE},
+	{"sequence", FB2Reader::_SEQUENCE},
 	{0, FB2Reader::_UNKNOWN}
 };
 
diff -ur fbreader-0.7.4g/fbreader/common/formats/fb2/FB2Reader.h fbreader-0.7.4k/fbreader/common/formats/fb2/FB2Reader.h
--- fbreader-0.7.4g/fbreader/common/formats/fb2/FB2Reader.h	2006-07-11 13:55:47.000000000 +0400
+++ fbreader-0.7.4k/fbreader/common/formats/fb2/FB2Reader.h	2006-10-07 15:27:33.000000000 +0400
@@ -74,6 +74,8 @@
 		_FIRST_NAME,
 		_MIDDLE_NAME,
 		_LAST_NAME,
+		_COVERPAGE,
+		_SEQUENCE,
 		_UNKNOWN
 	};
 
